#include <stdio.h>

int main()
{
    // 2^100:用数组来存一个非常大的数，用数组来模拟每一位
    int a[100] = {0};
    a[0] = 1;//首先从1*2，要不然没有值啊
    for (int i = 0; i < 100; i++) //
    {
        for (int j = 0; j < 100; j++)
        {
            a[j] *= 2; // 每一位都×2；第0位还是0
        }
        for (int k = 0; k < 99; k++) // 从最低位开始检查每一位是否有进位
        {
            if (a[k] >= 10)
            {
                a[k + 1]++;
                a[k] -= 10;
            }
        }
    }
 
    // 找到第一个不为0的数，此后的数据都要打印
    int flag = 0; // 状态标志位：状态切换
    for (int i = 99; i >= 0; i--)
    {
        if (a[i] != 0)//遇到第一个不为0的值
        {
            flag = 1;
        }
        if(flag==1)
        {
            printf("%d", a[i]);
        } 
    }
    printf("\n");

    //作业：987654321*123456789=？
}
